home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / phagexsources.lha / source / ShadeBob-Runner.s < prev    next >
Text File  |  1994-07-09  |  5KB  |  338 lines

  1. ; Runs yer standard Shadebob segment, i think we all know where shadebobs
  2. ; originated from (cough, hardwired, splutter!)  hehe
  3.  
  4. ; Also Cycles the palette
  5.  
  6. ; RMB changes Bob and SineWave Pattern
  7.  
  8.     Opt    c-
  9.     Section    "Phages ShadeBob Runner",Code_c
  10.  
  11.     IncDir    Df1:
  12.  
  13. Start    Movem.l    d0-d7/a0-a6,-(sp)
  14.     Bsr    KillSys
  15.     
  16.     Lea    CopperList1(pc),a0
  17.     Move.l    a0,$Dff080
  18.     Move.w    #$83c0,$Dff096
  19.  
  20.     Lea    CycleStart(pc),a6
  21.     Lea    Cycle0(pc),a0
  22.     Move.l    a0,(a6)
  23.  
  24.     Lea    $c0000,a0
  25.     Moveq    #4,d0    
  26.     Bsr    ShadeBob+$20
  27.     
  28. ReDoo    Bsr    ShadeBob+$22
  29.     Lea    $c0000,a0
  30.     Move.l    a0,a1
  31.     Add.l    #5*$2e00,a1
  32. ClearLoop    Move.l    #0,(a0)+
  33.     Cmp.l    a0,a1
  34.     Bne    ClearLoop
  35.  
  36. Loop    Bsr    VBL
  37.     Bsr    DoCycle
  38.     Bsr    ShadeBob+$24
  39.     
  40.     Btst    #2,$Dff016
  41.     Beq    ReDoo
  42.     Btst    #6,$Bfe001
  43.     Bne    Loop
  44.  
  45. Quit    Bsr    ReturnSys
  46.     Movem.l    (sp)+,d0-d7/a0-a6
  47.     Moveq    #0,d0
  48.     Rts
  49.  
  50. VBL    Move.l    $Dff004,d0
  51.     And.l    #$1ff00,d0
  52.     Cmp.l    #$13000,d0
  53.     Bne    VBL
  54.     Rts
  55.  
  56. BWait    Btst    #$6,$Dff002
  57.     Bne    BWait
  58.     Rts
  59.     
  60. KillSys    Bsr    SysWait
  61.     Move.l    $4,a6            
  62.     Lea    GFXLibName(pc),a1
  63.     Moveq    #0,d0
  64.     Jsr    -552(a6)
  65.     Lea    OldCopper(pc),a5
  66.     Move.l    $26(a0),(a5)
  67.     Lea    $Dff000,a6
  68.     Move.w    IntEnaR(a6),d0
  69.     Move.w    DMAConR(a6),d1
  70.     Or.w    #$8000,d0
  71.     And.w    #$03ff,d1
  72.     Or.w    #$8000,d1
  73.     Move.w    #$7fff,IntEna(a6)
  74.     Move.w    #$7fff,DMACon(a6)
  75.     Move.w    d0,$4(a5)
  76.     Move.w    d1,$6(a5)
  77.     Bset    #1,$Bfe001
  78.     Rts
  79.  
  80. SysWait    Move.w    #15,d7
  81. SWLoop1    Move.w    #$1000,d0
  82. SWLoop2    Move.w    d0,$Dff182
  83.     Move.w    d7,$Dff180
  84.     Dbf    d0,SWLoop2
  85.     Dbf    d7,SWLoop1
  86.     Rts
  87.  
  88. ReturnSys    Lea    $Dff000,a6
  89.     Move.w    OldIntEna(pc),IntEna(a6)
  90.     Move.w    OldDMACon(pc),DMACon(a6)
  91.     Move.l    OldCopper(pc),Cop1lc(a6)
  92.     Rts
  93.         
  94. DoCycle    Lea    $Dff180,a0    ; Color 00 reg
  95.     Move.l    CycleStart(pc),a1
  96.     Moveq    #0,d0
  97.     Lea    CyclePos(pc),a5
  98.     Move.w    (a5),d0
  99.     Add.w    #1,(a5)
  100.     Asl.w    #1,d0
  101.     
  102.     Add.l    d0,a1
  103.     Move.w    (a1)+,d0
  104.     Cmpi.w    #$ffff,d0
  105.     Bne    NotTabEnd
  106.     Move.w    #0,(a5)
  107.     Bra    DoCycle
  108.     
  109. NotTabEnd    Move.w    #31,d7
  110. DoColoCyc    Move.w    d0,(a0)
  111.     Add.l    #2,a0
  112. RedooC    Move.w    (a1)+,d0
  113.     Cmpi.w    #$ffff,d0
  114.     Bne    NotColoL
  115.     Move.l    CycleStart(pc),a1
  116.     Bra    RedooC
  117. NotColoL    Dbf    d7,DoColoCyc    
  118. NoCycle    Rts
  119.  
  120. GFXLibName    Dc.b    "graphics.library",0,0,0,0
  121. OldCopper    Dc.l    0
  122. OldIntEna    Dc.w    0
  123. OldDmaCon    Dc.w    0
  124. OldX    Dc.b    0
  125. OldY    Dc.b    0
  126.  
  127. CycleStart    Dc.l    0
  128. CyclePos    Dc.w    0
  129.  
  130. Cmv    Macro
  131.     Dc.w    \2,\1
  132.     EndM
  133.     
  134. Cwt    Macro
  135.     Dc.w    (\1*$100)+$01,$fffe
  136.     EndM    
  137.  
  138. Pal    Macro
  139.     Dc.w    $ffe1,$fffe
  140.     EndM    
  141.  
  142. EndCop    Macro
  143.     Dc.w    $ffff,$fffe
  144.     EndM    
  145.  
  146. DatP    Macro    
  147.     Dc.w    $e0+(\1*4),\2/$10000
  148.     Dc.w    $e2+(\1*4),(\2-((\2/$10000)*$10000))
  149.     EndM
  150.     
  151. CopperList1    Cwt    $15
  152.     Cmv    $0200,BplCon0
  153.     Cmv    $0000,BplCon1
  154.     Cmv    $000a,BplCon2
  155.     Cmv    $0038,DdfStrt
  156.     Cmv    $00d0,DdfStop
  157.     Cmv    $1681,DiwStrt
  158.     Cmv    $36c1,DiwStop
  159.     Cmv    $0000,BplMod1
  160.     Cmv    $0000,BplMod2
  161.     Cwt    $16
  162. CopperCOLS    Cmv    $0000,Color00
  163.     Cmv    $0fff,Color01
  164.     Cmv    $0eee,Color02
  165.     Cmv    $0ddd,Color03
  166.     Cmv    $0ccc,Color04
  167.     Cmv    $0bbb,Color05
  168.     Cmv    $0aaa,Color06
  169.     Cmv    $0999,Color07
  170.     Cmv    $0888,Color08
  171.     Cmv    $0777,Color09
  172.     Cmv    $0666,Color10
  173.     Cmv    $0555,Color11
  174.     Cmv    $0444,Color12
  175.     Cmv    $0333,Color13
  176.     Cmv    $0222,Color14
  177.     Cmv    $0111,Color15
  178.     Cmv    $0000,Color16
  179.     Cmv    $0001,Color17
  180.     Cmv    $0002,Color18
  181.     Cmv    $0003,Color19
  182.     Cmv    $0004,Color20
  183.     Cmv    $0005,Color21
  184.     Cmv    $0006,Color22
  185.     Cmv    $0007,Color23
  186.     Cmv    $0008,Color24
  187.     Cmv    $0009,Color25
  188.     Cmv    $000a,Color26
  189.     Cmv    $000b,Color27
  190.     Cmv    $000c,Color28
  191.     Cmv    $000d,Color29
  192.     Cmv    $000e,Color30
  193.     Cmv    $000f,Color31
  194.  
  195.     Cwt    $20
  196. CopperBPLS    Cmv    $000c,BplPt0h
  197.     Cmv    $0000,BplPt0l
  198.     Cmv    $000c,BplPt1h
  199.     Cmv    $2e00,BplPt1l
  200.     Cmv    $000c,BplPt2h
  201.     Cmv    $5c00,BplPt2l
  202.     Cmv    $000c,BplPt3h
  203.     Cmv    $8a00,BplPt3l
  204.     Cmv    $000c,BplPt4h
  205.     Cmv    $b800,BplPt4l
  206.  
  207.     Cwt    $21
  208.     Cmv    $5200,BplCon0
  209.  
  210.     Pal
  211.     Cwt    $38
  212.  
  213.     Cmv    $0200,BplCon0
  214.     Cmv    $0000,Color00
  215.  
  216.     EndCop
  217. Cycle0    Incbin    df0:SysData/CL3
  218.     Dc.w    -1,-1
  219.     
  220. ShadeBob    Incbin    df0:CodeSegments/ShadeBob-Seg
  221.     
  222. ****Custom Chip Registers****
  223.  
  224. ;Control Registers
  225.  
  226. Dmaconr    = $002
  227. Vposr    = $004
  228. Vhposr    = $006
  229. Joy0dat    = $00A
  230. Joy1dat    = $00C
  231. Clxdat    = $00E
  232. Intenar    = $01C
  233. Intereqr    = $01E
  234. Copcon    = $02E
  235.  
  236. ;Blitter Registers
  237.  
  238. Bltcon0    = $040
  239. Bltcon1    = $042
  240. Bltafwm    = $044
  241. Bltalwm    = $046
  242. Bltcpth    = $048
  243. Bltcptl    = $04A
  244. Bltbpth    = $04C
  245. Bltbptl    = $04E
  246. Bltapth    = $050
  247. Bltaptl    = $052
  248. Bltdpth    = $054
  249. Bltdptl    = $056
  250. Bltsize    = $058
  251. Bltcmod    = $060
  252. Bltbmod    = $062
  253. Bltamod    = $064
  254. Bltdmod    = $066
  255. Bltcdat    = $070
  256. Bltbdat    = $072
  257. Bltadat    = $074
  258.  
  259. ;Copper Registers
  260.  
  261. Cop1lc    = $080
  262. Cop1lch    = $080
  263. Cop1lcl    = $082
  264. Cop2lc    = $084
  265. Cop2lch    = $084
  266. Cop2lcl    = $086
  267. Copjmp1    = $088
  268. Copjmp2    = $08A
  269. Diwstrt    = $08E
  270. Diwstop    = $090
  271. Ddfstrt    = $092
  272. Ddfstop    = $094
  273. Dmacon    = $096
  274. Clxcon    = $098
  275. Intena    = $09A
  276. Intreq    = $09C
  277.  
  278. ;BitPlane Registers 
  279.  
  280. BplCon0    = $100
  281. BplCon1    = $102
  282. BplCon2    = $104
  283. BplMod1    = $108
  284. BplMod2    = $10a
  285.  
  286. BplPt0h    = $0e0
  287. BplPt0l    = $0e2
  288. BplPt1h    = $0e4
  289. BplPt1l    = $0e6
  290. BplPt2h    = $0e8
  291. BplPt2l    = $0ea
  292. BplPt3h    = $0ec
  293. BplPt3l    = $0ee
  294. BplPt4h    = $0f0
  295. BplPt4l    = $0f2
  296. BplPt5h    = $0f4
  297. BplPt5l    = $0f6
  298.  
  299. ;Colorour Registers
  300.  
  301. Color00    = $180
  302. Color01    = $182
  303. Color02    = $184
  304. Color03    = $186
  305. Color04    = $188
  306. Color05    = $18a
  307. Color06    = $18c
  308. Color07    = $18e
  309. Color08    = $190
  310. Color09    = $192
  311. Color10    = $194
  312. Color11    = $196
  313. Color12    = $198
  314. Color13    = $19a
  315. Color14    = $19c
  316. Color15    = $19e
  317. Color16    = $1a0
  318. Color17    = $1a2
  319. Color18    = $1a4
  320. Color19    = $1a6
  321. Color20    = $1a8
  322. Color21    = $1aa
  323. Color22    = $1ac
  324. Color23    = $1ae
  325. Color24    = $1b0
  326. Color25    = $1b2
  327. Color26    = $1b4
  328. Color27    = $1b6
  329. Color28    = $1b8
  330. Color29    = $1ba
  331. Color30    = $1bc
  332. Color31    = $1be
  333.  
  334.  
  335.  
  336.  
  337.  
  338.